bogglewalk=function(){
walklist=list(c(2L,5L,6L), # 1
c(1L,3L,5L,6L,7L), # 2
c(2L,4L,6L,7L,8L), # 3
c(3L,7L,8L), # 4
c(1L,2L,6L,9L,10L), # 5
c(1L,2L,3L,5L,7L,9L,10L,11L), # 6
c(2L,3L,4L,6L,8L,10L,11L,12L), # 7
c(3L,4L,7L,11L,12L), # 8
c(5L,6L,10L,13L,14L), # 9
c(5L,6L,7L,9L,11L,13L,14L,15L), # 10
c(6L,7L,8L,10L,12L,14L,15L,16L), # 11
c(7L,8L,11L,15L,16L), # 12
c(9L,10L,14L), # 13
c(9L,10L,11L,13L,15L), # 14
c(10L,11L,12L,14L,16L), # 15
c(11L,12L,15L)) # 16
walk=rep(0L,16);walk[1]=6 # start is the first cell in the matrix
for(i in 2:16){
walk[i]=ifelse( sum(walklist[[walk[(i-1)]]] %in% walk[1:(i-1)])==length(walklist[[walk[(i-1)]]]),0,
ifelse( sum(!(walklist[[walk[(i-1)]]] %in% walk[1:(i-1)]))==1,
walklist[[walk[(i-1)]]][ !(walklist[[walk[(i-1)]]] %in% walk[1:(i-1)])],
sample(walklist[[walk[(i-1)]]][!(walklist[[walk[(i-1)]]] %in% walk[1:(i-1)])],1) ))
if(walk[i]==0) return()} # returns NULL
return(walk)}
tmp=t(replicate(1E6,bogglewalk()))
tmp=do.call(rbind,tmp[sapply(tmp,function(x){length(x)>0})])
tmp=tmp[duplicated(tmp)==F,]
res1=apply(tmp,1,function(x){paste(x,collapse=".")})
table(tmp.string%in%middlewalks)
bogglewalks16=rbind(bogglewalks16,tmp)
table(duplicated(bogglewalks16))
bogglewalks16=bogglewalks16[duplicated(bogglewalks16)==FALSE,]
# 3x3 matrix
bogglewalk=function(){
walklist=boggles[[1]][[2]]
walk=rep(0L,9);walk[1]=1 # sample(c(1L,2L,5L),1) # start is the first walk in the matrix
for(i in 2:9){
walk[i]=ifelse( sum(walklist[[walk[(i-1)]]] %in% walk[1:(i-1)])==length(walklist[[walk[(i-1)]]]),0,
ifelse( sum(!(walklist[[walk[(i-1)]]] %in% walk[1:(i-1)]))==1,
walklist[[walk[(i-1)]]][ !(walklist[[walk[(i-1)]]] %in% walk[1:(i-1)])],
sample(walklist[[walk[(i-1)]]][!(walklist[[walk[(i-1)]]] %in% walk[1:(i-1)])],1) ))
if(walk[i]==0) return(walk)}
return(walk)}
replicate(2,replicate(2,t(bogglewalk())))
tmp=t(replicate(1E2,bogglewalk()))
walks=rbind(walks,tmp)
walks=walks[apply(walks,1,function(x) sum(x==0))==0,]
walks=walks[duplicated(walks)==F,]
nrow(walks[walks[,1]==1,])
# 2 x 2 matrix
bogglewalk=function(){
walklist=list(c(2,3,4),c(1,3,4),c(1,2,4),c(1,2,3))
walk=rep(0L,4);walk[1]=sample(c(1L,2L,3L,4L),1) # start is the first walk in the matrix
for(i in 2:4){
walk[i]=ifelse( sum(walklist[[walk[(i-1)]]] %in% walk[1:(i-1)])==length(walklist[[walk[(i-1)]]]),0,
ifelse( sum(!(walklist[[walk[(i-1)]]] %in% walk[1:(i-1)]))==1,
walklist[[walk[(i-1)]]][ !(walklist[[walk[(i-1)]]] %in% walk[1:(i-1)])],
sample(walklist[[walk[(i-1)]]][!(walklist[[walk[(i-1)]]] %in% walk[1:(i-1)])],1) ))
if(walk[i]==0) return(walk)}
return(walk)}
tmp=t(replicate(1E3,bogglewalk()))
walks=rbind(walks,tmp)
walks=walks[apply(walks,1,function(x) sum(x==0))==0,]
walks=walks[duplicated(walks)==F,]
# Transform the ones that start on the corners so taht they start with 1 instead.
# filter out the duplicates.
t0=
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.